package com.heima.mapper;

import com.github.pagehelper.Page;
import com.heima.dto.pagedto.MenuPageDto;
import com.heima.pojo.Menu;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface MenuMapper {
    /**
     * 新增菜单
     * @param menu
     */
    @Insert("insert into tb_menu(icon, is_cache, is_frame, menu_id, menu_name, menu_type, parent_id, parent_name, path, perms, status, visible, create_time, update_time, order_num)\n" +
            "values (#{icon},#{isCache},#{isFrame},#{menuId},#{menuName},#{menuType},#{parentId},#{parentName},#{path},#{perms},#{status},#{visible},#{createTime},#{updateTime},#{orderNum})")
    void insertMenu(Menu menu);

    /**
     * 菜单管理搜索
     * @param menuPageDto
     * @return
     */
    Page<Menu> queryMenuList(MenuPageDto menuPageDto);

    /**
     * 获取菜单信息（用于修改界面回显）
     * @param menuId
     * @return
     */
    @Select("select * from tb_menu where menu_id = #{menuId}")
    Menu getMenuInfo(Integer menuId);

    /**
     * 修改菜单
     * @param menu
     */
    void updateMenu(Menu menu);

    /**
     * 删除菜单
     * @param menuId
     */
    @Delete("delete from tb_menu where menu_id = #{menuId}")
    void deleteMenu(Integer menuId);
}
